using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Models
{
    /// <summary>
    /// 角色实体类，定义系统中的角色
    /// </summary>
    public class Role
    {
        /// <summary>
        /// 构造函数，初始化角色的集合属性
        /// </summary>
        public Role()
        {
            UserRoles = new List<UserRole>();
            RolePermissions = new List<RolePermission>();
        }

        /// <summary>
        /// 角色ID，主键
        /// </summary>
        public int RoleId { get; set; }
        
        /// <summary>
        /// 角色名称，必填
        /// </summary>
        [Required]
        public string RoleName { get; set; } = null!;
        
        /// <summary>
        /// 用户角色关联集合，表示该角色下的所有用户
        /// </summary>
        public virtual ICollection<UserRole> UserRoles { get; set; }

        /// <summary>
        /// 角色权限关联集合，表示该角色拥有的所有权限
        /// </summary>
        public virtual ICollection<RolePermission> RolePermissions { get; set; }
    }
} 